package com.itcam.phaselist.arrays_;

import java.util.Arrays;
import java.util.Comparator;

public class ArraysMethod01 {
    public static void main(String[] args) {

        Integer[] integers = {1, 2, 3, 4, 5, 6};
        // 遍历数组
//        for (int i=0;i<integers.length;i++){
//            System.out.println(integers[i]);
//        }
        // 直接使用Arrays.toString方法显示数组
        System.out.println(Arrays.toString(integers));

        // sort 冒泡排序
        /**
         * 演示sort方法的使用
         *  1. 可以直接使用冒泡排序, 也可以直接使用Arrays提供的sort方法排序
         *  2. 因为数组是引用类型，所以通过sort排序后，会直接影响到实参arr
         */

        Integer arr[] = {1, 9, -4, 4, -8, 7};
        Arrays.sort(arr); // 升序
        System.out.println("===升序排序后===");
        System.out.println(Arrays.toString(arr));

        /**
         *  3. sort重载的，也可以通过传入一个接口Comparator实现定制排序
         *  4. 调用定制排序时，传入两个参数
         *    (1) 排序的数组arr
         *    (2) 实现了Comparator接口的匿名内部类, 要求实现compare方法
         */
        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                Integer i1 = o1;
                Integer i2 = o2;
                return i2 - i1;
            }
        });
        System.out.println("===降序排序后===");
        System.out.println(Arrays.toString(arr));

    }
}
